package com.tedu.api.list;

import java.util.Collection;

//测试：  创建父类：Fruit---属性：名字
//       创建两个子类：Apple，Orange--构造器：传水果名
//       创造类：TestJob  泛型  ？ extends 父类
//       约束-----静态的方法 printFruit()
//        约束只能是继承父类的子类才可以使用
//        单元测试：testE()测试---约束是否现在成功
//         实际开发应用中，高级程序员制定
//       限定传入子类一定是继承父类操作
public class Fruit {
    private String name; //私有属性 name 水果名称

    public String getName() {//获取名字
        return name;
    }

    public Fruit(String name) {
        this.name = name;
    }
}
//创建两个子类：Apple和Orange继承Fruit
class Apple extends Fruit{
    public Apple() {
        super("苹果");
    }
}
class Orange extends Fruit{
    public Orange() {
        super("橘子");
    }
}
class Pear{

}
//创建TestJab类---静态方法 printFruit:添加约束：传入类型一定是父类的子类
class TestJab{
    public static void printFruit(Collection<? extends Fruit> fruits){
        //增强for循环：父类Fruit 名称


        for(Fruit fruit:fruits){
            //打印对象名称
            System.out.println(fruit.getName());
        }
    }
    //测试：上界限定：一定继承Fruit【pear不继承Fruit】

}